A flowchart is a type of diagram that may represents an algorithm, workflow or process in a program. The flowchart may show steps in the program as shapes of various kinds and may show an order of the steps by connecting the shapes with arrows. Flowcharts may be used in designing and documenting a program. For example, flowcharts may clarify what is occurring in the program, and flowcharts may help identify flaws, bottlenecks, and other concerns in the program.